package org.jupiter.blog.service.service;

import org.jupiter.blog.api.dto.JupiterDictionaryDTO;

import java.util.List;

public interface JupiterDictionaryService {

    /**
     * 创建字典项
     */
    void createDictionary(JupiterDictionaryDTO dto);

    /**
     * 根据UUID获取字典项
     */
    JupiterDictionaryDTO getById(String uuid);

    /**
     * 更新字典项
     */
    void updateDictionary(String uuid, JupiterDictionaryDTO dto);

    /**
     * 删除字典项
     */
    void deleteDictionary(String uuid);

    /**
     * 分页查询字典列表
     */
    List<JupiterDictionaryDTO> getByPage(JupiterDictionaryDTO queryDTO);

    /**
     * 获取字典总数
     */
    long getCount(JupiterDictionaryDTO queryDTO);

    /**
     * 获取所有字典项
     */
    List<JupiterDictionaryDTO> getAll();

    /**
     * 根据字典类型获取字典列表
     */
    List<JupiterDictionaryDTO> getByDictType(String dictType);

    /**
     * 根据父级UUID获取子字典列表
     */
    List<JupiterDictionaryDTO> getByParentUuid(String parentUuid);

    /**
     * 根据字典类型和键获取字典项
     */
    JupiterDictionaryDTO getByDictTypeAndKey(String dictType, String dictKey);

    /**
     * 获取激活状态的字典列表
     */
    List<JupiterDictionaryDTO> getActiveByDictType(String dictType);
}
